The system relates to the distribution of content in a network, in particular embodiments, the distribution of on demand content in a multicast network.
Delivery of significant volumes of data to multiple users, or end hosts, can impose a significant burden on a network. Data can be broadcast over the network and picked up by receivers interested in obtaining the data. However, there may be whole sections of a network in which there is no receiver who wishes to obtain the data so broadcasting data to these network portions wastes network bandwidth. An alternative approach is to send data directly to only those users who have requested the data using unicast methods. However, this can result in large amounts of replicated content being transmitted over the network, which again can cause congestion in the network and affect reliability and Quality of Service (QoS) for other data being transmitted in the network.
Multicasting techniques can be used to distribute content more efficiently in a network by ensuring that content is not replicated in the network until paths to its intended destinations split in the network topology.
The delivery of on-demand content poses a particular problem, however, since multiple users may request the same content at different times and each user may wish to pause or rewind the content stream during playback of the media. Delivery of such on-demand content by unicast enables a user to start viewing a stream at any time and to pause and rewind the stream. However, unicasting of all content is undesirable in most networks since it results in significant replication of the content transmitted over the network and consumes large amounts of network bandwidth.
There are difficulties in using multicast delivery techniques to deliver on-demand content to several end hosts; for example, the multicast stream cannot be paused or rewound for a single user wishing to join the stream at a later stage, as might be the case in uptake of on-demand content. This might result in the new host having to set up and receive a unicast stream for the content, no matter how little ahead in time the multicast stream might be from the start of the piece of content.
In a further aspect, there is provided a method of delivering content from a source to at least one destination in a content delivery network, the method comprising:                receiving a request for delivery of a piece of content to the destination;        receiving information relating to a capability of the destination;        determining whether the content should be delivered in a multiple multicast time-shifted content delivery mode, the mode comprising delivering the piece of content using a plurality of multicast streams, the plurality of multicast streams each delivering the content with a relative time-shift between corresponding portions of the content;        wherein the determination is based on at least one of:                    a measure of the number of requests for the content in a preceding time period;            a model of predicted requests for the content in a subsequent time period;            a determination of the geographical or topological distribution of the existing or expected destinations in the network;            the topological or geographical position of the requesting destination in the content delivery network compared to the position of other destinations already receiving the content; and            a measure of the network capacity or availability between the source and the at least one destination.                        
The method can enable a system to determine whether content should be delivered using multiple time-shifted multicast streams based on a number of factors, or optionally based on a combination of such factors. The analysis of these factors can enable the system to ensure content is delivered efficiently, but in accordance with current network conditions and capabilities.
The information relating to the capability of the destination may comprise an indication of whether the destination is able to receive multiple multicast streams. In some embodiments, the capability of the destination comprises the buffer capacity of the destination and/or a determination of the number of streams that can be simultaneously received by the destination. The capabilities of the destination may be used to govern whether and how many multiple multicast streams are used for content delivery.
In one embodiment, the at least one destination comprises a plurality of destinations and the capability comprises the buffer capacity of the destination having the smallest buffer capacity, the mean buffer capacity of the destinations or the modal buffer capacity of the destinations.
Optionally, the model of predicted requests determines the expected number of requests or expected rate of requests for the content over a subsequent time period. For example, the model may predict the number of requests for the content that are expected within the hour after the content is first made available or the expected rate of fall-off of requests after a peak.
Optionally, the model of predicted requests determines the expected geographical or topological distribution of requesting destinations over a subsequent time period.
In a particular embodiment, the content is delivered using a plurality of time-delayed multicast streams if the destination requesting the content is capable of receiving a plurality of time-delayed multicast streams and at least one, optionally both, of the following conditions is fulfilled:                the model predicts at least one further request for the content in a predetermined period;        the content is being delivered to a least one other destination that is topologically or geographically proximate to the requesting destination.        
A number of aspects of embodiments of the system have been described above. It will be clear to one skilled in the art that each of these aspects may be implemented independently. However, the aspects are optionally implemented in conjunction with each other to provide multiple advantages as part of a larger system. Features of one aspect may be applied directly to other aspects of the system. Further, method features may be applied directly to aspects of the apparatus.
In particular, in all of the aspects described above, the destination may be a host or a host designated router, H-DR, in a multicast network. The host may be the end user terminal associated with an end user or consumer of the content or may be an intermediate device that serves the content to the user's device. For example, the destination may be a hub within a home network that receives the content for streaming to a user's terminal, such as an internet-connected television, a computer, a tablet or a telephone.
Similarly, in all of the aspects described above, the source may be the device that serves the content in the network or may be an intelligent routing component in the network that handles routing of content to destinations. The content may pass through the intelligent routing component, or the component may control other components in the network, such as the source, to implement the methods described herein.
Further, in all of the aspects set out above, the content is optionally video content and/or audio content, in particular on-demand content delivered in response to a request from a user. However, the skilled person will appreciate that the systems and methods described herein could equally be applied to networks for the distribution of data, such as text or image data, or software.